package xyz.ssf.cloud.project.system.domain.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Set;

/**
 * 角色数据传输对象，用于接收前端表单数据
 */
@Data
public class RoleDTO implements Serializable {
    
    private static final long serialVersionUID = 1L;

    /** 角色ID */
    private Long id;
    
    /** 角色名称 */
    @NotBlank(message = "角色名称不能为空")
    @Size(max = 30, message = "角色名称长度不能超过30个字符")
    private String roleName;
    
    /** 角色编号 */
    @NotBlank(message = "角色编号不能为空")
    @Size(max = 100, message = "角色编号长度不能超过100个字符")
    private String roleCode;
    
    /** 角色状态（0正常 1停用） */
    @NotBlank(message = "角色状态不能为空")
    private String roleStatus;
    
    /** 显示顺序 */
    @NotNull(message = "显示顺序不能为空")
    private Integer sorted;
    
    /** 备注 */
    @Size(max = 500, message = "备注长度不能超过500个字符")
    private String remark;
    
    /**
     * 菜单ID集合
     */
    private Set<Long> menuIds;
} 